/**
 * 文件名：UserMapper.java
 * 功能：用户数据访问层 MyBatis Mapper 接口
 * 作用：定义用户数据的查询和插入方法，与 UserMapper.xml 中的 SQL 语句对应
 * 模块关系：
 *   - 被 AuthService 使用：注册时插入用户，登录时查询用户
 *   - 被 UserController 使用：查询用户信息
 *   - 与 UserEntity 关联：查询结果映射为 UserEntity 对象
 *   - 与 UserMapper.xml 配合：接口方法在 XML 中实现 SQL 逻辑
 * 作者：白永康
 * 学号：2501210209
 */
package com.example.demo.user.mapper;

import com.example.demo.user.entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;

/**
 * 用户 Mapper 接口
 * 使用 MyBatis 进行数据库访问
 */
@Mapper
public interface UserMapper {
    
    /**
     * 根据用户名查询用户
     * @param username 用户名
     * @return 用户实体，不存在则返回 null
     */
    UserEntity findByUsername(String username);
    
    /**
     * 插入新用户
     * @param user 用户实体，插入后会自动设置 id 字段
     */
    void insert(UserEntity user);
    
    /**
     * 根据 ID 查询用户
     * @param id 用户 ID
     * @return 用户实体，不存在则返回 null
     */
    UserEntity findById(Long id);
}
